//package com.turbo.boot.crawler.spider.worker.impl;
//
//import com.alibaba.fastjson.JSON;
//import com.turbo.boot.crawler.spider.worker.BaseTurboCrawlerPageParser;
//import com.xuxueli.crawler.annotation.PageFieldSelect;
//import com.xuxueli.crawler.annotation.PageSelect;
//import lombok.Getter;
//import lombok.Setter;
//import org.apache.commons.lang3.StringUtils;
//import org.jsoup.nodes.Document;
//import org.jsoup.nodes.Element;
//import org.springframework.stereotype.Service;
//
//import javax.annotation.Resource;
//import java.math.BigDecimal;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 描述
// *
// * @author wuyn
// * @since 2024/4/19
// */
//@Service("nationalDebtCrawlerPageParser")
//public class NationalDebtCrawlerPageParser extends BaseTurboCrawlerPageParser<NationalDebtCrawlerPageParser.PageVo> {
//
//
//    private static final Map<String, String> mapper = new HashMap<>();
//
//    static {
//        mapper.put("美债2年收益率", "USG2Y");
//        mapper.put("美债5年收益率", "USG5Y");
//        mapper.put("美债10年收益率", "USG10Y");
//        mapper.put("美债30年收益率", "USG30Y");
//        mapper.put("日债10年收益率", "GJGB10Y");
//        mapper.put("澳大利亚10年期国债", "GACG10Y");
//        mapper.put("德债10年收益率", "GDBR10");
//        mapper.put("法债10年收益率", "GFRN10");
//        mapper.put("意大利债10年收益率", "GBTP10");
//        mapper.put("西班牙债10年收益率", "GSP10Y");
//        mapper.put("英债10年收益率", "GUKG10");
//    }
//
//    @Resource
//    private NationalDebtDal nationalDebtDal;
//
//    @Override
//    public void parse(Document html, Element pageVoElement, PageVo pageVo) {
//        // 解析封装 PageVo 对象
//        String pageUrl = html.baseUri();
//        if (StringUtils.isEmpty(pageVo.getName())) {
//            return;
//        }
//        System.out.println(pageUrl + "：" + pageVo.toString());
//        // 处理业务代码
//        NationalDebtEntity record = new NationalDebtEntity();
//        record.setCollectedAt(new Date());
//        record.setCode(mapper.get(StringUtils.strip(pageVo.getName())));
//        record.setName(StringUtils.strip(pageVo.getName()));
//        record.setLastestPrice(new BigDecimal(StringUtils.strip(pageVo.getLastestPrice())));
//        record.setTrend(new BigDecimal(StringUtils.strip(pageVo.getTrend()).replace("%", "")));
//        record.setRising(new BigDecimal(StringUtils.strip(pageVo.getRising())));
//        record.setHighestPrice(new BigDecimal(StringUtils.strip(pageVo.getHighestPrice())));
//        record.setLowestPrice(new BigDecimal(StringUtils.strip(pageVo.getLowestPrice())));
//        record.setYesterdayPrice(new BigDecimal(StringUtils.strip(pageVo.getYesterdayPrice())));
////        record.setUpdatedTime(StringUtils.strip(pageVo.getUpdateTime()));
//
//        nationalDebtDal.insert(record);
//    }
//
//
//    @Setter
//    @Getter
//    @PageSelect(cssQuery = "#GJZQ > tbody > tr")
//    public static class PageVo {
//
//        @PageFieldSelect(cssQuery = "td:nth-child(1) > a")
//        private String name;
//
//        @PageFieldSelect(cssQuery = "td:nth-child(2)")
//        private String lastestPrice;
//
//        @PageFieldSelect(cssQuery = "td:nth-child(3)")
//        private String rising;
//
//        @PageFieldSelect(cssQuery = "td:nth-child(4)")
//        private String trend;
//
//
//        @PageFieldSelect(cssQuery = "td:nth-child(5)")
//        private String highestPrice;
//
//
//        @PageFieldSelect(cssQuery = "td:nth-child(6)")
//        private String lowestPrice;
//
//
//        @PageFieldSelect(cssQuery = "td:nth-child(7)")
//        private String yesterdayPrice;
//
//
//        @PageFieldSelect(cssQuery = "td:nth-child(8)")
//        private String updateTime;
//
//
//        @Override
//        public String toString() {
//            return JSON.toJSONString(this);
//        }
//    }
//}
